A prior-art robot has been controlled by a position/speed control system as shown in FIG. 13. Namely, a control system has been used, wherein a deviation between a speed command, which has been obtained by multiplying, by a position gain KP, a deviation between a position command and a position feedback signal detected by a position sensor, and a speed feedback signal, which has been obtained by differentiating the position feedback signal, is multiplied by a speed gain KV, proportional plus integral actions are performed, and the result is amplified by an amplifier to drive a joint motor.
When a task involving a contact with a workpiece is performed with such a control system, if workpiece displacement or the like exists, great torque is generated due to effects of the gains KP and KV which have been set great to improve rigidity and an integrator, therefore, execution of the task becomes difficult.
As an example, a description will be given based on a task to extract a workpiece as a die casting from a die-casting machine by grasping it with a robot tool.
When a workpiece is forcibly extruded from a die casting machine by a hydraulic cylinder, great torque is generated in a robot using a high-gain control system, therefore, the prior-art robot cannot extract the workpiece while grasping it. For a robot to perform such a task, appropriate flexible compliance motion becomes necessary.
Also, for a robot to perform such a die-cast handling task, appropriate flexible translational motion becomes necessary in a task coordinate system. This is mainly because external force from external apparatuses acts linearly and the shape of an object of contact is composed of lines and planes.
To cope with such problems, for example, in a prior art disclosed in Japanese Unexamined Patent Publication No. Sho-58-45891, a method exits, wherein dedicated compliance tools are utilized to absorb working force.
In addition hereto, in a prior art disclosed in Japanese Unexamined Patent Publication No. Sho-63-139678, a method exists, wherein working force is detected by means of a force sensor and force control is performed in the direction thereof.
Moreover, as a method for performing flexible control without adding special devices to a robot, in a prior art disclosed in Japanese Unexamined Patent Publication No. Hei-6-332538, a control method has been disclosed, wherein flexibility setting is possible in a joint coordinate system.
Moreover, in recent years, as a method for performing flexible control in a task coordinate system, in a prior art disclosed in Japanese Unexamined Patent Publication No. Hei-8-227320, a control method has been disclosed, wherein flexibility setting is possible in a task coordinate system.
Furthermore, in a prior art disclosed in Japanese Unexamined Patent Publication No. Hei-8-155868, a method has been disclosed, wherein the current position of a vector component specified in a tool coordinate system is successively transformed into a command value.
However, the aforementioned prior art had the following problems.
In the method disclosed in Japanese Unexamined Patent Publication No. Sho-58-45891, it is necessary to prepare dedicated tools to meet various tasks, therefore, weight capacity of a robot is reduced by the weight of the dedicated tools.
In addition, in the method described in Japanese Unexamined Patent Publication No. Sho-63-139678, a force sensor is necessary, and the system becomes complicated by loading the force sensor. Moreover, mechanical strength of the force sensor is low compared to that of the robot, therefore, if external force over the allowable torque of the force sensor acts, this poses a risk of a fracture of the force sensor.
Moreover, in the method described in Japanese Unexamined Patent Publication No. Hei-6-332538, in which a method for controlling flexibility in a joint coordinate system has been disclosed, since each joint axis independently and flexibly moves due to a gain reduction, it is difficult for a teaching operator of a robot to find the synthesized flexible direction and flexibility. Moreover, in a case where the posture of a robot has been changed because of, for example, being pushed by an external apparatus, the flexible direction of translation in the task coordinate system also changes, and motion to keep the posture of a tool cannot be performed. Therefore, a problem exists such that unexpected force such as a twist acts on a workpiece, causing a fracture if the workpiece is a die casting or the like having a complicated shape and low rigidity. Furthermore, since flexibility is provided at each joint axis in a circular fashion, even if the flexible motions are synthesized, flexible translational motion in the task coordinate system cannot be performed to perfection.
Moreover, in the method described in Japanese Unexamined Patent Publication No. Hei-8-227320, in which a control method for controlling flexibility in a task coordinate system has been disclosed, since it is necessary to determine a gain by making displacement of the joint coordinate system correspond to displacement of the task coordinate system, the relational formula for calculation becomes extremely intricate and a calculating load to the CPU becomes great, consequently, a gain cannot be continuously determined in response to changes in posture of the robot. In particular, in a robot posture, such as in the vicinity of a singular point, where the rate of change in the correspondence of displacement is great between the joint angle and task coordinates, a great calculating load acts on the CPU. Moreover, problems exist such that since real-time calculating cannot be performed in response to changes in posture of the robot and continuous gain calculating is difficult, flexibility of the robot is widely different depending on the posture of the robot.
Furthermore, in the method described in Japanese Unexamined Patent Publication No. Hei-8-155868, the angle of each axis whose position has been changed by external force is taken in real time, the current position of a position/posture in a specified tool coordinate system is calculated (orderly transformation), and only the current position of a specified vector component is transformed into a command value (inverse transformation). However, orderly transformations for all axes of the robot and inverse transformations of renewed command values are necessary in real time, the volume of calculations is great and the processing time is long.